/**
 * 
 */
package fr.lelouet.ga.examples.multOf11;

import fr.lelouet.ga.algorithmes.InternalBehaviour;
import fr.lelouet.ga.mutators.LazyMutator;
import fr.lelouet.ga.reducers.TurnamentReducer;
import fr.lelouet.ga.reducers.competitors.EvaluatingCompetitor;
import fr.lelouet.ga.stoppers.MaxNGenerationsStopper;

/**
 * @author guigolum
 */
public class Searcher extends InternalBehaviour<Integer> {

    /**
     * @param generator
     * @param stopper
     * @param reducer
     * @param combinator
     * @param mutator
     */
    public Searcher(final int maxGenerations, final int nbelems) {
	super(new Generator1To100(nbelems),
		new MaxNGenerationsStopper<Integer>(maxGenerations),
		new TurnamentReducer<Integer>(nbelems,
			new EvaluatingCompetitor<Integer>(
				new ElevenMultiplicatorEvaluator())),
		new CombinatorAdd(), new LazyMutator<Integer>());
    }

}
